Solid state storage devices, such as flash memory devices, are currently used for storing data. These devices are more used than conventional storage devices due to offering exceptional bandwidth, significant savings in power consumption, and random I/O (input/output) performance.
A data storage device contains data write locations known as “pages”. Write operations are usually performed on a page basis. When a page fails, the data in the failed page should be recovered. So reliability is another key issue for data storage devices. The popular practice of protecting die failure in data storage devices is to use a dedicated parity die. Parity is computed for the input data written to each flash page by an exclusive OR Boolean operation (XOR). When a page fails, the data in the failed page can be recovered from other pages using the computed parity.
In practice, multiple codewords are allocated in a single page. When each page is allocated with an integer number of codewords, the data in the failed page can be recovered from other pages using the computed parity. Usually, applicable lengths of codewords are limited for each page to contain an integer number of codewords to generate parity for recovering correspondingly data when the page fails.